/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 高生平
 * Date: 2025-09-13
 * Time: 10:59
 */
// 给定一个大小为 n 的数组，找到其中的多数元素。
// 多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
public class Test {
    public static int majorityElement (int[] nums) {
        int ret = 0;
        int count = 0;
        //摩尔投票算法
        //多数元素的数量比其他所有元素的总和还多，因此可以通过“抵消”的方式统计候选元素。
        for (int x : nums) {
            if (count == 0) {
                ret = x;
            }
            count += (x == ret) ? 1 : -1;
        }
        return ret;
    }
    public static void main(String[] args) {
        int[] nums = {2,2,1,1,1,2,2};
        System.out.println(majorityElement(nums));
    }
}
